package jmine.tec.report.base;

import java.io.Serializable;

import bancosys.tec.persist.controller.PersistenceEnabledController;
import bancosys.tec.utils.date.Date;

/**
 * Implementação base de parametros de relatórios.
 * 
 * @author Rafael Volpato
 * @date Nov 19, 2010
 */
public abstract class AbstractReportParameter implements Serializable {

    private Date dataInicio;

    private Date dataFim;

    private PersistenceEnabledController controller;

    /**
     * @return the controller
     */
    public PersistenceEnabledController getController() {
        return this.controller;
    }

    /**
     * @param controller the controller to set
     */
    public void setController(PersistenceEnabledController controller) {
        this.controller = controller;
    }

    /**
     * @return the dataInicio
     */
    public Date getDataInicio() {
        return this.dataInicio;
    }

    /**
     * @param dataInicio the dataInicio to set
     */
    public void setDataInicio(Date dataInicio) {
        this.dataInicio = dataInicio;
    }

    /**
     * @return the dataFim
     */
    public Date getDataFim() {
        return this.dataFim;
    }

    /**
     * @param dataFim the dataFim to set
     */
    public void setDataFim(Date dataFim) {
        this.dataFim = dataFim;
    }

    /**
     * Retorna um prefixo para ser adicionado ao nome do arquivo do relatório.
     * 
     * @return um prefixo para ser adicionado ao nome do arquivo do relatório
     */
    public abstract String getReportFileNamePrefix();
}
